In imaging processing contexts such as computer vision and object detection, it may be desirable to detect blobs within image data representing a scene. For example, a blob may include a region of an image in which some property or properties are substantially constant such that the pixels of the blob may be, in some ways, similar to each other. Such blobs may be useful for object detection, object recognition, object tracking, and other computer vision implementations. For example, blobs may be associated with objects such as faces, humans, animals, automobiles, and so on.
It may be desirable to efficiently detect blobs even in noisy image data such as depth images (or depth maps) and/or noisy color images. However, current blob detection techniques may have difficulty detecting blobs in such noisy depth images and/or noisy color images. For example, such noisy depth images and/or noisy color images may include holes (e.g., small regions of pixels with missing or incorrect values). Such holes inside blobs may cause difficulty in detecting the outline of the blob as hole outlines may be mistakenly detected as part of the outline or contour of the blob. For example, edge detection techniques such as the mean shift technique that attempts to classify the blob in a second processing stage may not provide high quality blob detection in such contexts and flood fill techniques that attempt to color the entire blob may require a large amount of computational resources.
Furthermore, it may be advantageous to provide computationally efficient, low memory bandwidth, and energy efficient blob detection in both low quality (e.g., noisy) and high quality (e.g. non-noisy) images. However, current techniques may be computationally inefficient and may require large memory usage making them inefficient in terms of power usage and performance. Such limitations may cause difficulties particularly in implementations such as mobile device or wearable device implementations.
It may be advantageous to perform blob detection with greater accuracy and/or with less computational requirements. It is with respect to these and other considerations that the present improvements have been needed. Such improvements may become critical as the desire to provide high quality image processing and computer visions becomes more widespread.